package com.zhang.exceltest.modules.common.service;

import java.util.List;
import java.util.Set;

public interface BaseService<T,ID> {

    /**
     * 添加
     * @author imoxiao
     * @date 2021/10/29 14:01
     * @param entity
     * @return T
     */
    T save(T entity);

    /**
     * 批量添加
     * @author imoxiao
     * @date 2021/11/9 10:15
     * @param entities
     * @return java.util.List<T>
     */
    List<T> saveAll(List<T> entities);

    /**
     * 查询
     * @author imoxiao
     * @date 2021/10/29 15:07
     * @param id
     * @return T
     */
    T get(ID id);


    /**
     * 查询 逻辑
     * @author imoxiao
     * @date 2021/10/29 15:07
     * @param id
     * @return T
     */
    T getLogic(ID id);

    /**
     * 获取所有
     * @author imoxiao
     * @date 2021/11/9 10:11
     * @return java.util.List<T>
     */
    List<T> getAll();

    /**
     * 逻辑删除
     * @author imoxiao
     * @date 2021/10/29 14:02
     * @param id
     * @return boolean
     */
    boolean deleteLogic(ID id);


    /**
     * 批量逻辑删除
     * @author imoxiao
     * @date 2021/11/10 14:04
     * @param ids
     * @return boolean
     */
    boolean deleteAllLogic(Set<ID> ids);


    /**
     * 按ID查询 逻辑
     * @author imoxiao
     * @date 2021/10/29 15:08
     * @return java.util.List<T>
     */
    List<T> getByIdsLogic(Set<ID> ids);

    /**
     * 批量按ID查询
     * @author imoxiao
     * @date 2021/10/29 15:08
     * @return java.util.List<T>
     */
    List<T> getByIds(Set<ID> ids);


//
//    /**
//     * ɾ��������
//     * @author imoxiao
//     * @date 2021/10/29 14:07
//     * @param id
//     * @return boolean
//     */
//    void delete(ID id);
//

}
